/*
 *   SlimPlayer Copyright (c) 2006 Koelec
 *
 *   This file is part of SlimPlayer plugin for SageTv.
 *
 *   Slimplayer is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 *   Slimplayer is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with SoftSqueeze; if not, write to the Free Software
 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 */
package nl.cmkprojects.sage.slimplayer.squeeze;

import java.lang.reflect.Method;
import java.util.Map;

public class SongInfo
{

  private String id;

  private String title;

  private String genre;

  private String genreId;

  private String artist;

  private String artistId;

  private String composer;

  private String band;

  private String conductor;

  private String album;

  private String albumId;

  private String duration;

  private String disc;

  private String discCount;

  private String trackNum;

  private String year;

  private String bpm;

  private String comment;

  private String type;

  private String bitrate;

  private boolean hasCoverart = false;

  private boolean hasCoverartThumb = false;

  private String url;

  private String coverartUrl;

  public SongInfo()
  {
  }

  /**
   * @return Returns the id.
   */
  public String getId()
  {
    return id;
  }

  /**
   * @param id
   *          The id to st.
   */
  public void setId(String id)
  {
    this.id = id;
  }

  /**
   * @return Returns the album.
   */
  public String getAlbum()
  {
    return album;
  }

  /**
   * @param album
   *          The album to set.
   */
  public void setAlbum(String album)
  {
    this.album = album;
  }

  /**
   * @return Returns the albumId.
   */
  public String getAlbumId()
  {
    return albumId;
  }

  /**
   * @param albumId
   *          The albumId to set.
   */
  public void setAlbumId(String albumId)
  {
    this.albumId = albumId;
  }

  /**
   * @return Returns the artist.
   */
  public String getArtist()
  {
    return artist;
  }

  /**
   * @param artist
   *          The artist to set.
   */
  public void setArtist(String artist)
  {
    this.artist = artist;
  }

  /**
   * @return Returns the artistId.
   */
  public String getArtistId()
  {
    return artistId;
  }

  /**
   * @param artistId
   *          The artistId to set.
   */
  public void setArtistId(String artistId)
  {
    this.artistId = artistId;
  }

  /**
   * @return Returns the band.
   */
  public String getBand()
  {
    return band;
  }

  /**
   * @param band
   *          The band to set.
   */
  public void setBand(String band)
  {
    this.band = band;
  }

  /**
   * @return Returns the bitrate.
   */
  public String getBitrate()
  {
    return bitrate;
  }

  /**
   * @param bitrate
   *          The bitrate to set.
   */
  public void setBitrate(String bitrate)
  {
    this.bitrate = bitrate;
  }

  /**
   * @return Returns the bpm.
   */
  public String getBpm()
  {
    return bpm;
  }

  /**
   * @param bpm
   *          The bpm to set.
   */
  public void setBpm(String bpm)
  {
    this.bpm = bpm;
  }

  /**
   * @return Returns the comment.
   */
  public String getComment()
  {
    return comment;
  }

  /**
   * @param comment
   *          The comment to set.
   */
  public void setComment(String comment)
  {
    this.comment = comment;
  }

  /**
   * @return Returns the composer.
   */
  public String getComposer()
  {
    return composer;
  }

  /**
   * @param composer
   *          The composer to set.
   */
  public void setComposer(String composer)
  {
    this.composer = composer;
  }

  /**
   * @return Returns the conductor.
   */
  public String getConductor()
  {
    return conductor;
  }

  /**
   * @param conductor
   *          The conductor to set.
   */
  public void setConductor(String conductor)
  {
    this.conductor = conductor;
  }

  /**
   * @return Returns the disc.
   */
  public String getDisc()
  {
    return disc;
  }

  /**
   * @param disc
   *          The disc to set.
   */
  public void setDisc(String disc)
  {
    this.disc = disc;
  }

  /**
   * @return Returns the discCount.
   */
  public String getDiscCount()
  {
    return discCount;
  }

  /**
   * @param discCount
   *          The discCount to set.
   */
  public void setDiscCount(String discCount)
  {
    this.discCount = discCount;
  }

  /**
   * @return Returns the duration.
   */
  public String getDuration()
  {
    return duration;
  }

  /**
   * @param duration
   *          The duration to set.
   */
  public void setDuration(String duration)
  {
    this.duration = duration;
  }

  /**
   * @return Returns the genre.
   */
  public String getGenre()
  {
    return genre;
  }

  /**
   * @param genre
   *          The genre to set.
   */
  public void setGenre(String genre)
  {
    this.genre = genre;
  }

  /**
   * @return Returns the genreId.
   */
  public String getGenreId()
  {
    return genreId;
  }

  /**
   * @param genreId
   *          The genreId to set.
   */
  public void setGenreId(String genreId)
  {
    this.genreId = genreId;
  }

  /**
   * @return Returns the hasCoverart.
   */
  public boolean isHasCoverart()
  {
    return hasCoverart;
  }

  /**
   * @param hasCoverart
   *          The hasCoverart to set.
   */
  public void setHasCoverart(boolean hasCoverart)
  {
    this.hasCoverart = hasCoverart;
  }

  /**
   * @return Returns the hasCoverartThumb.
   */
  public boolean isHasCoverartThumb()
  {
    return hasCoverartThumb;
  }

  /**
   * @param hasCoverartThumb
   *          The hasCoverartThumb to set.
   */
  public void setHasCoverartThumb(boolean hasCoverartThumb)
  {
    this.hasCoverartThumb = hasCoverartThumb;
  }

  /**
   * @return Returns the title.
   */
  public String getTitle()
  {
    return title;
  }

  /**
   * @param title
   *          The title to set.
   */
  public void setTitle(String title)
  {
    this.title = title;
  }

  /**
   * @return Returns the trackNum.
   */
  public String getTrackNum()
  {
    return trackNum;
  }

  /**
   * @param trackNum
   *          The trackNum to set.
   */
  public void setTrackNum(String trackNum)
  {
    this.trackNum = trackNum;
  }

  /**
   * @return Returns the type.
   */
  public String getType()
  {
    return type;
  }

  /**
   * @param type
   *          The type to set.
   */
  public void setType(String type)
  {
    this.type = type;
  }

  /**
   * @return Returns the url.
   */
  public String getUrl()
  {
    return url;
  }

  /**
   * @param url
   *          The url to set.
   */
  public void setUrl(String url)
  {
    this.url = url;
  }

  /**
   * @return Returns the year.
   */
  public String getYear()
  {
    return year;
  }

  /**
   * @param year
   *          The year to set.
   */
  public void setYear(String year)
  {
    this.year = year;
  }

  public String toString()
  {
    return title + " " + artist + " " + album;
  }

  public String getCoverartUrl()
  {
    return coverartUrl;
  }

  public void setCoverartUrl(String coverartUrl)
  {
    this.coverartUrl = coverartUrl;
  }

  public void fillProperties(Map map, String keys)
  {
    Method[] methods = this.getClass().getDeclaredMethods();
    for (int i = 0; i < methods.length; i++)
    {
      String name = methods[i].getName();
      if (name.startsWith("get"))
      {
        String headerName = name.substring(name.indexOf("get"));
      }
    }
  }

}